#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

typedef int dataType;
typedef struct ListNode ListNode;

struct ListNode
{
	ListNode* prev;
	dataType data;
	ListNode* next;
};

void initList(ListNode*);
void printList(ListNode*);
void listPushBack(ListNode*, dataType);
void listPushFront(ListNode*, dataType);
void listPopBack(ListNode*);
void listPopFront(ListNode*);
ListNode* findNode(ListNode*, dataType);
void listInsertAfter(ListNode*, dataType);
void listInsertBefore(ListNode*, dataType);
void listErase(ListNode*);
void destroyList(ListNode*);